
var app = getApp()
wx-Page({

  /**
   * 页面的初始数据
   */
  data: {
    recruits:[], //返回的所有招募信息
    timeState:[], //判断是否正在进行
    indexAllRecruits:[], //首页全部招募显示 默认10个 
    newRecruits:[],  //最新发布  
    hotRecruits:[],  //热门发布  (从最新招募的前 20 个挑选出最热门的)
    MaXNum:3,      //决定盒子展示多少个 招募 
    hiddentop:true, //是否隐藏返回顶部
    scrollTop: 0, //返回顶部
  },

  // 判断用户是否第一次登录  ，如果第一次登录则弹窗提示授权，并且把用户数据插入数据库

  login:function(){

    app.isFirstLogin().then(res=>{
      if(app.globalData.isFirstLogin){  //第一次登录
        wx.showModal({
          title: '提示',
          content: '请授权获取更多内容',
          success: function (res) {
            if (res.confirm) {//这里是点击了确定以后
              if(app.globalData.canIUseGetUserProfile){
                app.getUserProfile()
              }else{
                app.getUserInfo()
              }
            } else {//这里是点击了取消以后
            }
          }
        })
        
      }
    }).catch(err=>{
      console.log('错误')
    })
   
  },
  toDetailsTap:function (e) {
    console.log(e)
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
      url: '/pages/details/details?id='+id,
    })
  },

  // 判断招募是否正在进行 
  isRecruitEndTime:function(endTime){
    if( Date.parse(new Date())/1000-endTime>0) {
      //  已结束
      return false
     }else{
     return true
     }
  },

  // 加载 最新盒子 最多显示 MaXNum 个 默认3个
  newRecruits:function(){
    let newRecruits =[],
    MaXNmu = this.data.MaXNum //获取盒子展示招募的数量 默认位3
    let i = 0
    const indexRecruitAll = this.data.recruits
    for (let index = 0; index < indexRecruitAll.length; index++) {
     
      if((this.isRecruitEndTime(indexRecruitAll[index].endTime) &&( indexRecruitAll[index].recruitState==1) )){  //判断招募是否通过审核、是否结束  
        newRecruits.push(indexRecruitAll[index])
        i++
      }
      if(i==MaXNmu){
        break
      }
    }
    this.setData({
      newRecruits:newRecruits
    })
  },

  indexAllRecruits:function(){
    let indexAllRecruits =[]
    let timeState=[] 
    let MaXNmu = 5 //获取盒子展示招募的数量 默认位5
    let i = 0
    const indexRecruitAll = this.data.recruits
    for (let index = 0; index < indexRecruitAll.length; index++) {
      if((indexRecruitAll[index].recruitState==1)){  //判断招募是否通过审核 
        indexAllRecruits.push(indexRecruitAll[index])
        i++
        if( Date.parse(new Date())/1000-indexRecruitAll[index].endTime>0) {
          //  已结束
           timeState.push('已结束')
         }else{
           timeState.push('进行中')
         }
      }
      if(i==MaXNmu){
        break
      }
    }
    this.setData({
      indexAllRecruits:indexAllRecruits,
      timeState:timeState
    })
  },

  // 加载 热门盒子 最多显示 MaXNum 个 默认3个
  hotRecruits:function(){
    let hotRecruits =[]
    const indexRecruitAll = this.data.recruits
    const   MaXNmu = this.data.MaXNum //获取盒子展示招募的数量 默认位3
    let a = 0 //当够三个的时候用来结束循环
    let len = indexRecruitAll.length
    if(indexRecruitAll.length>100){
      len=100
    }
    //进行排序
    for (var i = 0; i < len-1; i++) {
      for (var j = 0; j < len-1 - i; j++) {
           // 相邻元素两两对比，元素交换，大的元素交换到后面
          if (indexRecruitAll[j].applicationNum > indexRecruitAll[j + 1].applicationNum) {
              var temp = indexRecruitAll[j]
              indexRecruitAll[j] = indexRecruitAll[j+1]
              indexRecruitAll[j+1] = temp
          }
      }
    }
    // 进行选择
    // console.log('长度',len)
    for (let index = len-1; index >= 0; index--) {
      if((this.isRecruitEndTime(indexRecruitAll[index].endTime) && (indexRecruitAll[index].recruitState==1))){  //判断招募是否通过审核、是否结束  
        hotRecruits.push(indexRecruitAll[index])
        a++
      }
      if(a==MaXNmu){
        break
      }
    }
    this.setData({
      hotRecruits:hotRecruits
    })
    // console.log('热门招募',this.data.hotRecruits)
  },


  // 全部招募里面的更多
  more:function(){
    wx.navigateTo({
      url: '/pages/index_more/index_more',
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({
      title: '刷新中...',
    })
    const recruits=wx.getStorageSync('indexRecruitAll')
    // console.log('recruits',recruits)
    if(!recruits){
      // console.log('近来了')
      app.getIndexRecruitAll().then(res=>{
        this.setData({
          recruits:res,
        })
        wx.setStorageSync('indexRecruitAll',res)
        this.newRecruits()
        this.hotRecruits()
        this.indexAllRecruits()
        wx.hideLoading()
      })
    }else{
      this.setData({
        recruits:wx.getStorageSync('indexRecruitAll'),
      })
      this.newRecruits()
      this.hotRecruits()
      this.indexAllRecruits()
      wx.hideLoading()
    }
    this.login()
    // console.log('是否第一次授权',app.globalData.isFirstLogin)
  },
  // 点击顶部导航跳转到具体界面
  goNav:function(e){
   
    const id = e.currentTarget.dataset.id
    console.log(id)
    if(wx.getStorageSync('login')){
      if(id=='1'){
        wx.navigateTo({
          url: '/pages/publishList/publishList?id='+id,
        })
      }else if(id=='2'){
        wx.navigateTo({
          url: '/pages/collection/collection',
        })
        // 收藏
      }else if(id=='3'){
        // 其他
      }else if(id=='5'){
        wx.navigateTo({
          url: '/pages/myApplication/myApplication?status='+id,
        })  
      }else if(id=='6'){  //这两个需要改成申请的
        wx.navigateTo({
          url: '/pages/applicationStatus/applicationStatus?id='+'0',
        })  
      }else if(id=='7'){ //这两个需要改成申请的
        wx.navigateTo({
          url: '/pages/applicationStatus/applicationStatus?id='+'1',
        }) 
      }
     
    }else{
      wx.showModal({
        title: '提示',
        content: '请先登录',
        success (res) {
          if (res.confirm) {
            if(app.globalData.canIUseGetUserProfile){
              app.getUserProfile(1)
            }else{
              app.getUserInfo(1)
            }
          } else if (res.cancel) {
            console.log('用户点击取消')
            wx.switchTab({
              url: '/pages/personal/index',
            })
          }
        }
      })
    }
   
  },

  //监听页面滚动函数
onPageScroll: function (e) {
  if (e.scrollTop > 150) {
    this.setData({
      hiddentop: false
    });
  } else {
    this.setData({
      hiddentop: true
    });
  }
},

//回到顶部函数
goTop: function (e) {  // 一键回到顶部
  if (wx.pageScrollTo) {
    wx.pageScrollTo({
      scrollTop: 0
    })
  } else {
    wx.showModal({
      title: '提示',
      content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
    })
  }
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },


  onRefresh(){
     //在当前页面显示导航条加载动画
     wx.showNavigationBarLoading(); 
     //显示 loading 提示框。需主动调用 wx.hideLoading 才能关闭提示框
     wx.showLoading({
       title: '刷新中...',
     })
    this.getData();
  },
  // 下拉刷新  获取数据
  getData(){
    app.getIndexRecruitAll().then(res=>{
      this.setData({
        recruits:res,
      })
      wx.setStorageSync('indexRecruitAll',res)
      this.newRecruits()
      this.hotRecruits()
      this.indexAllRecruits()
      //隐藏loading 提示框
      wx.hideLoading();
      //隐藏导航条加载动画
      wx.hideNavigationBarLoading();
      //停止下拉刷新
      wx.stopPullDownRefresh();
    }).catch(err=>{
      console.log('下拉刷新失败',err)
    })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */    
  onPullDownRefresh: function () {
    this.onRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})